forked from NREL/GEOPHIRES-X
-
Notifications
You must be signed in to change notification settings - Fork 1
SAM-EM Multiple Construction Years [v3.10] #112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
softwareengineerprogrammer
merged 185 commits into
main
from
sam-em-multi-year-construction_v3
Dec 13, 2025
Merged
SAM-EM Multiple Construction Years [v3.10] #112
softwareengineerprogrammer
merged 185 commits into
main
from
sam-em-multi-year-construction_v3
Dec 13, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…WIP to adjust debt service and passed total installed cost to mimick phased capex outlay
…uction years (instead of explicitly specifying value)
…rom construction costs
…terminology (not 'loan')
…minology alignment
…n as being incurred in Year 0 (WIP to likewise adjust accrued financing during construction)
…pre-existing convention - TBD how things shake out when Total CAPEX value is re-aligned to OCC as it was previously...
…ed with pre-existing convention - TBD how things shake out when Total CAPEX value is re-aligned to OCC as it was previously..." This reverts commit cf7bc1b.
…truction convention - WIP: TODO to bump minor version and regenerated affected examples
…nstruction convention
…nterest Rate might be redundant with Inflated Bond Interest Rate
…ated Bond Interest Rate
…uts-updates MCY econ outputs updates
This was referenced Dec 11, 2025
…escalation-start-year Add Royalty Rate Escalation Start Year parameter
… clarify these values are annual and not cumulative
…NPV are calculated from. TODO to pivot relevant internal and user-facing terminology accordingly
… net cash flow [construction]' (some internal naming convention still remaining to refactor accordingly)
…tion capex schedule interpolation warnings suppressable)
…arameter read of Print Output to Console
| raise NotImplementedError('Royalties are only supported for SAM Economic Models') | ||
| sam_em_only_params: list[Parameter] = [ | ||
| self.royalty_rate, | ||
| # TODO other royalty params |
Owner
Author
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO
|
|
||
| def _insert_royalties_rate_schedule(self, cf_ret: list[list[Any]]) -> list[list[Any]]: | ||
| """ | ||
| TODO update user-facing documentation to mention this feature |
Owner
Author
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO
12 tasks
Owner
Author
|
Main repo PR: NREL#440 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Multiple Construction Years
Multiple construction years are supported by providing the
Construction Yearsparameter. GEOPHIRES simulates the pre-revenue phase to calculate the project’s Year 0 equivalent capitalized cost, which serves as the basis for depreciation and permanent debt sizing. This calculation accounts for the timing of capital deployment defined in byConstruction CAPEX Schedule, capturing both inflation costs and interest during construction (IDC) accrued prior to the start of operations.Testing & Verification
TODO
Year 0Purchase of property ($)relation toPurchase of property [construction] ($)Years -X–0:Year 0Debt balance ($)=Year 0Debt balance [construction] ($):Lower priority
Fervo_Project_Cape-4(or make newFervo_Project_Cape-5) example with construction years based on publicly stated timelines - https://fervoenergy.com/fervo-energy-raises-462-million-series-e-to-accelerate-geothermal-development-and-meet-surging-energy-demand-with-clean-firm-power/Pending final confirmation
Done
Bond Financing Start Year: https://github.com/scientific-web-services/geophires-sws/pull/1/commits/0313a81b4cd9767dda0a20a1066a082d3c256bb9, https://github.com/scientific-web-services/geophires-sws/pull/2/commits/ef9d20c732adf03331da48a7e88d106019188bbfConfirm changes to Accrued financing during construction (backwards-incompatible behavioral change):Removed parameter since it's become ambiguous to the point of being misleading/inaccurate: 00e1b5eBond Financing Start Yearindex off-by-one fix/disambiguation: 4e489f2GEOPHIRES/src/geophires_x/EconomicsSam.py
Line 155 in 1095839
plus:?example_SAM-single-owner-PPA-5to README examples list: 226bd86Construction Yearstooltip text to reference CAPEX schedule (https://github.com/softwareengineerprogrammer/GEOPHIRES/pull/112/files#diff-3d85ef79807fc6c25a758a698fd3a7095750bd27ea52341700e1dad94885b5f6R1273): 7eec16eexample_SAM-single-owner-PPA-5description (FIXME in code): d822bbeadjust_phased_schedule_to_new_length&_calculate_pre_revenue_costs_and_cashflowunit test(s): eb3769a_calculate_nominal_discount_rate_and_wacc- FIXME in code: f9ba093Print Output to Consolebeing set to false (0b98bff, 22c60fb), could be supported more directly as a follow-up itemChange Checklist:
Observe the following checklist items if your change includes a new version (see versioning notes and version management docs).
Before merging:
After merging:
git push origin refs/tags/vM.m.POriginally self-reviewed in https://github.com/scientific-web-services/geophires-sws/pull/2, #112, #113, #114, and #115